#pragma once
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"
#include "DataStructure/Result/Optimization/OptimizationBase.h"

SG_DATASTRUCTURE_POST_NAMESPACE_OPEN

struct CONSTRAINTData : public OptimizationBase {
  SG::DataStructure::Common::Id m_IDCID =
      0;  ///< Internal design constraint identification number
  SG::DataStructure::Common::Id m_DCID =
      0;  ///< DCONSTR Bulk Data entry identification number
  SG::DataStructure::Common::Id m_IRID =
      0;  ///< Internal response identification number
  SG::DataStructure::Common::I64 m_RTYPE =
      0;  ///< Response type or type 3 response location
  SG::DataStructure::Common::I64 m_TYPE = 0;  ///< Type of response (1 2 or 3)
  SG::DataStructure::Common::I64 m_LUFLAG =
      0;  ///< Bound Type (1=lower,2=upper)
  SG::DataStructure::Common::Real m_BOUND = 0.0;  ///< Bound value
  SG::DataStructure::Common::I64 m_REGION =
      0;  ///< Internal region identification number
  SG::DataStructure::Common::Real m_VALUE = 0.0;  ///< Constraint value
  SG::DataStructure::Common::Id m_domainId = 0;   ///< Domain identifier
};

///< @brief 判断数据是否相等
DECLSPEC bool operator==(const CONSTRAINTData& val1,
                         const CONSTRAINTData& val2);

SG_DATASTRUCTURE_POST_NAMESPACE_CLOSE
